Algorithm Design Course Schedule:
Week 1: Introduction to Algorithms
What is an algorithm?
Efficiency and scalability
Real-world applications
Review of asymptotic notation
Week 2: Algorithm Analysis
Worst / Average / Best case
Recurrence relations
Mathematical analysis
Week 3: Divide and Conquer
Divide-and-conquer paradigm
Merge Sort
Quick Sort
Week 4: Advanced Sorting and Selection
Heap Sort
Counting Sort
Selection algorithms
Radix Sort
Week 5: Greedy Algorithms
Greedy strategy
Huffman coding
Interval scheduling
Minimum spanning tree
Week 6: Dynamic Programming I
DP fundamentals
Memoization vs tabulation
Fibonacci
Coin change
Knapsack
Week 7: Dynamic Programming II
Longest Common Subsequence
Matrix chain multiplication
Week 8: Midterm Exam
Midterm Coverage Weeks 1–7
Exam Format : Multiple choice, Complexity analysis, Algorithm design, Short proofs
Week 9: Graph Algorithms I
Graph representations
BFS
DFS
Week 10: Graph Algorithms II
Dijkstra
Bellman-Ford
Floyd-Warshall
Shortest paths
Week 11: Minimum Spanning Trees
Prim’s algorithm
Kruskal’s algorithm
Union-Find
Week 12: NP-Completeness
P vs NP
Polynomial reductions
SAT
Traveling Salesman Problem
Computational hardness
Week 13: Approximation Algorithms
Approximation ratio
Vertex cover
TSP approximations
Week 14: Randomized Algorithms
Randomization techniques
Las Vegas vs Monte Carlo
Randomized QuickSort
Week 15: Advanced Topics & Project Presentation
AI search algorithms
Game pathfinding
Parallel algorithms
String matching
Machine learning optimization
Week 16: Final Exam
Algorithm design
Proofs
DP
Graph algorithms
NP-completeness